Portanto, estou tendo problemas para descobrir o uso adequado de list :: sort () em relação a uma lista de estruturas. Aqui está o código relevante: estudante de estrutura { char firstnm [20], lastnm [20]; int id, grau; }; listsList; // Código irrelevante ... cout << "Por favor, insira seu próprio nome, id e grau. (Ex: myfirst mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grade; sList.push_back (dados); sList.sort (); O problema que estou tentando resolver é usar sList.sort () para classificar por id. No entanto, não tenho ideia de como passá-lo corretamente para list :: sort (). Agradecemos antecipadamente por qualquer ajuda / tempo! EDIT: A solução foi simplesmente adicionar isso à minha estrutura operador bool <(const student & cmp) const { return id
2021-01-22 08:21:45
Você deve dar uma olhada em std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Existem várias definições dessa função, e uma onde você pode especificar o que deseja classificar. Além disso, dê uma olhada nesse post, acho que é o que você precisa: https://stackoverflow.com/a/21234017/6663947 Editar: isso é um exemplo de comparador: sList.sort ([] (const student & a, const student & b) {return a.idvoid sort (Compare comp); Supondo que você deseja classificar os objetos de aluno em sua lista de acordo com a identificação da chave em ordem crescente. Você pode definir o operador